package com.ryskoo.customer.vendormanager.repository;

import com.ryskoo.customer.vendormanager.domain.VendorManagerPO;
import com.ryskoo.framework.core.repository.IBasicRepository;

import java.util.List;

/**
 * 权限服务-管理员管理数据持久层接口
 *
 * @author Shawn
 */
public interface IVendorManagerRepository extends IBasicRepository<VendorManagerPO> {
	/**
	 * 根据用户名查询管理员信息
	 * 
	 * @param userName
	 * @return
	 */
	VendorManagerPO getManagerByLoginName(String userName);

	/**
	 * 根据用户名查询管理员uuid
	 * 
	 * @param userName
	 * @return
	 */
	String getManagerUuidByLoginName(String userName);

	/**
	 * 根据 商户uuid和是否超级管理员， 查找对应的员工
	 * 
	 * @param vendorUuids
	 * @param superManager
	 * @return
	 */
	List<VendorManagerPO> getVendorManagerByVendorUuid(List<String> vendorUuids, Boolean superManager);

	/**
	 * 根据商户和员工类型查询员工
	 * @param vendorUuid
	 * @param type
	 * @return
	 */
	List<VendorManagerPO> getManagerByVendorUuidAndType(String vendorUuid,int type);

	/**
	 * 根据商户和员工类型查询员工uuids
	 * @param vendorUuid
	 * @param type
	 * @return
	 */
	List<String> getUuidsByVendorUuidAndType(String vendorUuid,int type);

	/**
	 * 将该商户下的所有员工（排除managerUuid）设为不可接收消息推送
	 * @param vendorUuid 商户uuid
	 * @param type 员工类型
	 * @param managerUuid  要排除的员工uuid 可以为空
	 */
	void setNotReceiveNotificationToAll(String vendorUuid,int type,String managerUuid);
}
